#ifndef _OPTION_TYPE_BOOL_FILE_H_
#define _OPTION_TYPE_BOOL_FILE_H_

#include "OptionType.h"


namespace inilib
{

	/**
	 * Special type for bool (using bool with OptionTypeNumeric is possible, but might be
	 * confusing because of many unnecessary parameters in constructor).
	 */
	class OptionTypeBool : public OptionType
	{
	public:

		explicit OptionTypeBool (
			const std::string & optionName,
			Mandatory isMandatory = NONMANDATORY,
			ValuesAmount amount = SINGLE_VALUE,
			bool defaultValue = false,
			char separator = ','
		);

		virtual std::vector< std::string > GetDefaultValue () const;

	protected:
		virtual bool AreValuesValid_ ( const std::vector< std::string > & values ) const;

		std::vector< std::string > m_DefaultValue;
	};

}

#endif